// pages/profile/index.ts
Page({
  data: {
    userInfo: {
      avatar: '',
      nickName: '',
    },
  },
  onLoad() {
    this.getUserInfo()
  },
  // 获取用户信息
  async getUserInfo() {
    // 请求拦截器自动携带了 token
    const res = await wx.http.get('/userInfo')
    // console.log('用户信息', res)
    // 更新用户信息，用于渲染页面
    this.setData({
      userInfo: res.data,
    })
  },
  async updateNickName(e) {
    console.log('修改昵称', e.detail.value)
    const res = await wx.http.put('/userInfo', {
      nickName: e.detail.value,
    })
    console.log('🟢 res', res)
  },
  // 更新头像
  async updateAvatar(e) {
    console.log('🟢 e', e.detail.avatarUrl)

    // 上传头像
    // https://developers.weixin.qq.com/miniprogram/dev/api/network/upload/wx.uploadFile.html
    // 小程序的 request 和 uploadFile 是分开的，合法域名配置也是分开的
    // 登录微信管理后台 - 开发管理 - 开发设置 uploadFile 合法域名，添加 https://live-api.itheima.net
    // wx.uploadFile({
    //   url: wx.http.baseURL + '/upload',
    //   header: {
    //     Authorization: 'Bearer ' + wx.getStorageSync('token'),
    //   },
    //   name: 'file',
    //   filePath: e.detail.avatarUrl,
    //   formData: {
    //     type: 'avatar',
    //   },
    //   success: (res) => {
    //     res.data = JSON.parse(res.data)
    //     console.log('🟢 res', res.data)
    //     this.setData({
    //       'userInfo.avatar': res.data.data.url,
    //     })
    //   },
    // })
    // 通过 wechat-http 实现，更加简洁， http.upload 底层调用的就是 wx.uploadFile
    const res = await wx.http.upload('/upload', {
      name: 'file',
      filePath: e.detail.avatarUrl,
      formData: { type: 'avatar' },
    })
    this.setData({
      'userInfo.avatar': res.data.url,
    })
  },
})
